function ajax(url, callback) {
    var xmlhttp = new XMLHttpRequest()
    xmlhttp.open('get', url, true)
    xmlhttp.send()
    //核心：服务器响应数据
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
            try {
                let obj = JSON.parse(xmlhttp.responseText)
                callback(obj)
            } catch (error) {
                if(error instanceof SyntaxError && error.message.includes('JSON')){
                    console.log('JSON 数据格式错误')
                }else{
                    console.log(error)
                }
            }

        }
    }
}
//写在第一个ajax请求，是最后一个执行
ajax('https://jsonplaceholder.typicode.com/photos', res => {
    console.log(res)
})
ajax('../static/a.json', res => {
    console.log(res)
})
ajax('../static/b.json', res => {
    console.log(res)
})
ajax('../static/c.json', res => {
    console.log(res)
})

//如何让异步操作顺序执行：假设请求a.json之后才能请求b.json,再才能请求c.json
ajax('static/a.json', res => {
    console.log(res)
    ajax('static/b.json', res => {
        console.log(res)
        ajax('static/c.json', res => {
            console.log(res)
        })
    })
})
